package com.thinkingstar.iads.datacenter.service;
import java.util.List;
import java.util.Map;

import javax.jcr.query.Query;

import org.nutz.dao.QueryResult;
import org.nutz.dao.pager.Pager;
import org.nutz.lang.util.NutMap;

import com.thinkingstar.iads.common.jsonUtils.AjaxResult;
import com.thinkingstar.iads.datacenter.entity.DcEquipment;
import com.thinkingstar.iads.datacenter.entity.DcEquipmentManufacturer;
import com.thinkingstar.iads.datacenter.entity.DcEquipmentType;
import com.thinkingstar.iads.datacenter.entity.DcManufacturerEquipment;
import com.thinkingstar.iads.datacenter.entity.DcManufacturerEquipmentField;
import com.thinkingstar.iads.datacenter.entity.DcProjectDesignContent;
import com.thinkingstar.iads.datacenter.entity.DcProjectDesignMajor;
import com.thinkingstar.iads.datacenter.entity.DcProjectDesignPhase;
import com.thinkingstar.iads.datacenter.entity.DcProjectMentionInformation;

/**
 * 数据中心相关基础信息维护
 * @author Administrator
 *
 */
public interface DataDesignManagerServiceI {

	/**
	 * 查询项目阶段
	 * @param nutMap 查询相关条件
	 * @return
	 */
	public List <DcProjectDesignPhase> findProjectDesignPhase(NutMap nutMap);
	
	
	/**
	 * 查询项目阶段(将分页信息一起返回)
	 * @param nutMap
	 * @return
	 */
	public QueryResult findProjectDesignPhaseAndPageInfo(NutMap nutMap);
	
	
	/**
	 * 新增项目阶段
	 * @param dcProjectDesignPhase
	 * @return
	 */
	public AjaxResult updateDesignPhase(DcProjectDesignPhase dcProjectDesignPhase);
	
	/**
	 * 查询项目设计专业(将分页信息一起返回)
	 * @param nutMap
	 * @return
	 */
	public QueryResult findProjectDesignMajor(NutMap nutMap);
	
	/**
	 * 更新项目专业信息
	 * @param dcProjectDesignMajor
	 * @return
	 */
	public AjaxResult updateDesignMajor(DcProjectDesignMajor dcProjectDesignMajor);
	
	
	/**
	 * 分页查询设计内容相关信息
	 * @param nutMap
	 * @return
	 */
	public QueryResult findDesignContent(NutMap nutMap);
	
	
	/**
	 * 更新项目设计内容
	 * @param dcProjectDesignContent
	 * @return
	 */
	public AjaxResult updateDesignContent(DcProjectDesignContent dcProjectDesignContent); 
	
	/**
	 * 更新专业与设计内容的匹配
	 * @param nutMap
	 * @return
	 * @throws Exception 
	 */
	public AjaxResult addDesignContentCorrelationMajor(Map <String , Object> nutMap);
	
	/**
	 * 查找已匹配以及未匹配的专业
	 * @param content_id
	 * @return
	 */
	public List <Map> findMatchingMajorByContentId(String content_id);
	
	/**
	 * 根据分页条件查询提入资料信息
	 * @param nutMap
	 * @return
	 */
	public QueryResult findMentionsPageListByCondition(NutMap nutMap);
	
	/**
	 * 逻辑删除资料
	 * @param id
	 * @return
	 */
	public AjaxResult delMentionById(String id , String code);
	
	/**
	 * 更新提入资料
	 * @param dcProjectMentionInformation
	 * @return
	 */
	public AjaxResult updateMentionsInfo(DcProjectMentionInformation dcProjectMentionInformation);
	
	/**
	 * 根据专业id以及设计内容id,项目设计阶段id查询已匹配资料和未匹配的资料
	 * @param nutMap
	 * @return
	 */
	public List <Map> findMentionsByMajorId(NutMap nutMap);
	
	/**
	 * 根据设计内容匹配资料
	 * @param nutMap
	 * @return
	 */
	public AjaxResult addMentionsByDesignContent(NutMap nutMap);
	
	/**
	 * 根据条件分页查询设备类型
	 * @param nutMap
	 * @return
	 */
	public QueryResult findEquipmentType(NutMap nutMap);
	
	/**
	 * 更新设备类型
	 * @param dcEquipmentType
	 * @return
	 */
	public AjaxResult updateEquipmentType(DcEquipmentType dcEquipmentType);
	
	/**
	 * 获取厂商数据
	 * @param nutMap
	 * @return
	 */
	public QueryResult findManufacturerPageList(NutMap nutMap);
	
	/**
	 * 更新厂商
	 * @param dcEquipmentManufacturer
	 * @return
	 */
	public AjaxResult updateEquipmentManufacturer(DcEquipmentManufacturer dcEquipmentManufacturer);
	
	/**
	 * 分页查询设备
	 * @return
	 */
	public QueryResult findEquipmentPageList(NutMap nutMap);
	
	/**
	 * 更新设备
	 * @param dcEquipment
	 * @return
	 */
	public AjaxResult updateEquipment(DcEquipment dcEquipment);
	
	/**
	 * 获取厂商设备
	 * @param nutMap
	 * @return
	 */
	public QueryResult findManufacturerEquipmentPageList(NutMap nutMap);
	
	/**
	 * 更新厂商设备
	 * @param dcManufacturerEquipment
	 * @return
	 */
	public AjaxResult updateManufacturerEquipment(DcManufacturerEquipment dcManufacturerEquipment);
	
	/**
	 * 更新表结构
	 * @param tabla_name
	 * @param field_list
	 * @return
	 */
	public AjaxResult updateTableField(String tabla_name , String field_list);
	

}
